<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // 1、形参个数多
        function fn(a, b) {
            // let a = 10
            // let b
            console.log(a, b)
        }
        fn(10)
        // 2、形参个数少
        function fn2(a) {
            console.log(a);
        }
        fn2(10, 20);
        // 3、可变参数  有时候写函数时无法确定需要多少个形参
        // 例如现在封装一个函数 计算任意数的最大值
        // 针对function的函数 一旦函数调用在函数体内部自动存在一个arguments变量 保存函数调用时所传递的所有的实参（组合成为一个伪数组）

        function max() {
            // console.log([1,2,3])
            // console.log(arguments)
            // 假设负无穷是最大值
            let maxValue = -Infinity;
            for (let i = 0; i < arguments.length; i++) {
                maxValue < arguments[i] && (maxValue = arguments[i])
            }
            console.log(maxValue)
        }
        max(1, 26, 90, 3, 5)
    </script>
</body>

</html>